package com.ddstation.common.initialization;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

/**
 * 系统初始化
 * @author zhangdifeng
 * @date 2019年6月26日
 */
@Component
public class SystemInitialization implements ApplicationListener<ContextRefreshedEvent> {

	/**
	* 当一个ApplicationContext被初始化或刷新触发
	*/
	public void onApplicationEvent(ContextRefreshedEvent event) {
		if (event.getApplicationContext().getParent() == null) { // 同时集成了spring和springMVC的话，上下文中会存在父、子容器。 避免重复2次加载
			logger.info("系统初始化设置 开始");
			
//			// 检验机器设置初始化
//			List<LisMaMachineEntity> lisMachines = lisMachineService.getLisMachine();
//			if (lisMachines == null || lisMachines.isEmpty()) {
//				logger.error("检验机器设置初始化失败 lis_ma_machine join lis_ma_machine_port");
//				System.exit(-1);
//			} else {
//				Map<String, LisMaMachineEntity> _lisMachines = new HashMap<String, LisMaMachineEntity>(lisMachines.size());
//				for (LisMaMachineEntity lisMachine : lisMachines) {
//					if (StringUtils.isBlank(lisMachine.getStartChar()) || StringUtils.isBlank(lisMachine.getEndChar())) {
//						logger.error("设备端口管理表中开始结束字符未设置！institutionId：" + lisMachine.getMachinePort().getInstitutionId() + "  portName：" + lisMachine.getMachinePort().getPortName());
//						System.exit(-1);
//					}
//					_lisMachines.put(lisMachine.getMachinePort().getInstitutionId() + lisMachine.getMachinePort().getPortName(), lisMachine);
//				}
//				SystemProperties.setLisMachines(_lisMachines);
//			}
			
			logger.info("系统初始化设置 结束");
		}
	}
	
	private final Logger logger = LoggerFactory.getLogger(this.getClass());
}
